home *** CD-ROM | disk | FTP | other *** search
/ Programmer Plus 2007 / Programmer-Plus-2007.iso / Programming / Report Writers / Crystal Repot 9.0 Full CD version / Setup.exe / Windows / System32 / HTMLRE90.DLL / HTML / 11028 < prev    next >
Encoding:
Text File  |  2002-07-05  |  16.1 KB  |  657 lines

  1. <HTML>
  2. <HEAD>
  3.   <LINK REL="stylesheet" TYPE="text/css" HREF="%1css/default.css">
  4.  
  5. <script language="Javascript">
  6. //LOCALIZATION STRINGS
  7. var _errUnknownOption = "Unknown option";
  8. var L_Monday = "Monday";
  9. var L_Tuesday = "Tuesday";
  10. var L_Wednesday = "Wednesday";
  11. var L_Thursday = "Thursday";
  12. var L_Friday = "Friday";
  13. var L_Saturday = "Saturday";
  14. var L_Sunday = "Sunday";
  15. var L_First = "First";
  16. var L_Second = "Second";
  17. var L_Third = "Third";
  18. var L_Fourth = "Fourth";
  19. var L_Fifth = "Fifth";
  20. var L_WhereX = "Where X:";
  21. var L_WhereN = "Where N:";
  22. var L_NO_DAYS_CHECKED = "At least one day of the week must be selected.";
  23. var L_NOT_A_NUMBER_OR_ZERO = "The value must be a whole number greater than zero.";
  24. var L_NOT_A_NUMBER = "The value must be a positive whole number.";
  25. var L_NOT_START_END_DATE = "Please enter a valid date";
  26. var L_BOTH_ZERO = "The values cannot both be zero.";
  27. var L_NUMBER_IS_TO_LARGE = "The number cannot be greater than 32000."; 
  28. var L_MINUTES_IS_TO_LARGE =" You cannot specify more than 59 minutes.";
  29. var L_START_LATER_THAN_END = "The start time cannot be later than the end time.";
  30. </script>
  31.  
  32. <SCRIPT LANGUAGE="JavaScript">
  33. var lang_type = "%2";
  34.  
  35. function changeType(type, interval)
  36. {
  37.     document.location.replace("%3" + "&type=" + type + "&interval=" + interval
  38.       + "&retryCount=" + document.forms["Main"].elements["retryCount"].value);
  39. }
  40.  
  41. function onChangeOnce(interval)
  42. {
  43.     changeType("o", interval);
  44. }
  45.  
  46. function onChangeDaily(interval)
  47. {
  48.     changeType("d", interval);
  49. }
  50.  
  51. function onChangeWeekly(interval)
  52. {
  53.     changeType("w", interval);
  54. }
  55.  
  56. function onChangeMonthly(interval)
  57. {
  58.     changeType("m", interval);
  59. }
  60.  
  61. function onChangeOnDemand()
  62. {
  63.     changeType("n", "");
  64. }
  65.  
  66. function initSpecificTime(name)
  67. {
  68.   var form = document.forms["Main"];
  69.   var defHour = form.elements[name+"Hour"].value;
  70.   var defMinute = form.elements[name+"Minute"].value;
  71.  
  72.   // Set up AM/PM for all non 24 hour locales
  73.   if ((lang_type != "fr") && (lang_type != "de"))
  74.   {
  75.       if (defHour >= 12)
  76.       {
  77.         form.elements[name + "AM"].options[1].selected = true;
  78.         if (defHour > 12)
  79.             defHour = defHour - 12; 
  80.       }    
  81.       else if (defHour == 0)
  82.         defHour = 12;
  83.   }
  84.  
  85.   // Hour
  86.   for (var i=0; i < form.elements["Temp"+name+"Hour"].options.length; i++) 
  87.   {
  88.     if (form.elements["Temp"+name+"Hour"].options[i].value == defHour) 
  89.     {
  90.       form.elements["Temp"+name+"Hour"].options[i].selected = true;
  91.       break;
  92.     }
  93.   }
  94.   // Minute
  95.   for (var i=0; i < form.elements["Temp"+name+"Minute"].options.length; i++) 
  96.   {
  97.     if (form.elements["Temp"+name+"Minute"].options[i].value == defMinute) 
  98.     {
  99.       form.elements["Temp"+name+"Minute"].options[i].selected = true;
  100.       break;
  101.     }
  102.   }
  103. }
  104.  
  105. function initTime()
  106. {
  107.   if(document.forms["Main"].elements["StartHour"])
  108.   {
  109.     initSpecificTime("Start");
  110.     initSpecificTime("End");
  111.   }
  112. }
  113.  
  114. function getSpecificSubmitTime(name)
  115. {
  116.   var hours = 0; 
  117.   var minutes = 0; 
  118.   var am = 0; 
  119.  
  120.   var form = document.forms["Main"];
  121.   var tempHourElement = form.elements["Temp"+name+"Hour"];
  122.   var tempMinElement = form.elements["Temp"+name+"Minute"];
  123.  
  124.   // Check that the start and end dates are valid
  125.   // format of the date is to be yyyy/mm/dd
  126.   var regDate = /^ *\d{4} *\/ *(0?[1-9]|1[0-2]) *\/ *((0?[1-9]|[1-2]\d)|3(0|1)) *$/
  127.   var dateField = form.elements[name+"Date"];
  128.   if (! regDate.test ( dateField.value ) )
  129.   {
  130.     return false;
  131.   }
  132.  
  133.   if (lang_type == "ja")
  134.   {
  135.     hours = parseInt(tempHourElement[tempHourElement.selectedIndex].value); 
  136.     minutes = parseInt(tempMinElement[tempMinElement.selectedIndex].value);     
  137.  
  138.     am = form.elements[name+"AM"].value; 
  139.     if ((am == 1) && (hours == 12))
  140.         hours = 0;     
  141.  
  142.     if ((am == 2) && (hours < 12))
  143.         hours += 12; 
  144.   }     
  145.   else if ((lang_type == "fr") || (lang_type == "de"))
  146.   {
  147.     hours = parseInt(tempHourElement[tempHourElement.selectedIndex].value); 
  148.     minutes = parseInt(tempMinElement[tempMinElement.selectedIndex].value);     
  149.   }
  150.   else // english is the default
  151.   {
  152.     hours = parseInt(tempHourElement[tempHourElement.selectedIndex].value); 
  153.     minutes = parseInt(tempMinElement[tempMinElement.selectedIndex].value); 
  154.  
  155.     am = form.elements[name+"AM"].value; 
  156.     if ((am == 1) && (hours == 12))
  157.         hours = 0;     
  158.  
  159.     if ((am == 2) && (hours < 12))
  160.         hours += 12; 
  161.   }
  162.  
  163.   return form.elements[name+"Date"].value + " " + hours + ":" + minutes;
  164. }
  165.  
  166. function setDate(name, d)
  167. {
  168.   var form = document.forms["Main"];
  169.   form.elements[name+"Hour"].value = d.getHours(); 
  170.   form.elements[name+"Minute"].value = d.getMinutes(); 
  171.   form.elements[name+"Year"].value = d.getFullYear();
  172.   form.elements[name+"Month"].value = d.getMonth()+1;
  173.   form.elements[name+"Day"].value = d.getDate();
  174. }
  175.  
  176. function setSubmitTime()
  177. {
  178.   var form = document.forms["Main"];
  179.   if(form.elements["StartHour"])
  180.   {
  181.     var starttime = getSpecificSubmitTime("Start");
  182.     var endtime = getSpecificSubmitTime("End");
  183.     if (!starttime)
  184.     {
  185.       alert(L_NOT_START_END_DATE);
  186.       form.StartDate.focus();            
  187.       form.StartDate.select();
  188.       return false;
  189.     }
  190.     else if (!endtime)
  191.     {
  192.       alert(L_NOT_START_END_DATE);
  193.       form.EndDate.focus();            
  194.       form.EndDate.select();
  195.       return false;
  196.     }
  197.     else
  198.     {
  199.         var dStart = new Date(starttime);
  200.         var dEnd = new Date(endtime);
  201.         if(dStart.valueOf() > dEnd.valueOf())
  202.         {
  203.             alert(L_START_LATER_THAN_END);
  204.             form.EndDate.focus();            
  205.             form.EndDate.select();
  206.             return false;
  207.         }
  208.         setDate("Start", dStart);
  209.         setDate("End", dEnd);
  210.         return true;
  211.     }
  212.   }
  213.   else
  214.   {
  215.     return true;
  216.   }
  217. }
  218.  
  219. function initEvents()
  220. {
  221.     if(document.Main.waitfor_selected)
  222.     {
  223.         // Remove the formatting options
  224.         document.Main.elements["waitfor_targets"].options[0] = null; 
  225.         document.Main.elements["waitfor_choices"].options[0] = null; 
  226.         document.Main.elements["trigger_targets"].options[0] = null; 
  227.         document.Main.elements["trigger_choices"].options[0] = null; 
  228.     }
  229. }
  230.  
  231. function addTarget(prefix)
  232. {
  233.     var targetsElement = document.Main.elements[prefix + "_targets"].options;
  234.     var choicesElement = document.Main.elements[prefix + "_choices"].options; 
  235.  
  236.     // Run through this list twice, once to add, once to delete
  237.     total = choicesElement.length; 
  238.     for (count = 0; count < total; ++count)
  239.     {
  240.         current_target = choicesElement[count];
  241.             
  242.         if (current_target.selected)
  243.         {
  244.             // remove the object from the current targets
  245.             target_name = current_target.text;
  246.             target_id   = current_target.value; 
  247.  
  248.             // Create a new option
  249.             option = new Option(target_name, target_id, false, false); 
  250.  
  251.             // add it to the possible targets
  252.             targetsElement[targetsElement.length] = option;
  253.         }
  254.     }
  255.  
  256.     for (count = choicesElement.length -1;  count >= 0; --count)
  257.     {
  258.         if (choicesElement[count].selected)
  259.             choicesElement[count] = null; 
  260.     }
  261. }
  262.  
  263. function deleteTarget(prefix)
  264. {
  265.     var targetsElement = document.Main.elements[prefix + "_targets"].options;
  266.     var choicesElement = document.Main.elements[prefix + "_choices"].options; 
  267.  
  268.     // Run through the options and remove the current selections
  269.     total = targetsElement.length;
  270.     for (count = 0; count < total; ++count)
  271.     {
  272.         current_target = targetsElement[count];    
  273.         if (current_target.selected)
  274.         {
  275.             // remove the object from the current targets
  276.             target_name = current_target.text;
  277.             target_id   = current_target.value; 
  278.         
  279.             // Create a new option
  280.             option = new Option(target_name, target_id, false, false); 
  281.  
  282.             // add it to the possible targets
  283.             choicesElement[choicesElement.length] = option;
  284.         }
  285.     }
  286.     for (count = total -1; count >= 0;  --count)
  287.     {
  288.         if (targetsElement[count].selected)
  289.             targetsElement[count] = null; 
  290.     }
  291. }
  292.  
  293. function createSelectedString(prefix)
  294. {
  295.     var targetElement = document.Main.elements[prefix + "_targets"].options;
  296.  
  297.     var final_value = ""; 
  298.     var first = true; 
  299.     for (count = 0; count < targetElement.length; ++count)
  300.     {
  301.         if (!first)
  302.         {
  303.             final_value += "*"; 
  304.         }
  305.         else first = false; 
  306.  
  307.         current_target = targetElement[count];    
  308.         final_value += current_target.value;
  309.  
  310.         // De-select all entries on the select box
  311.         current_target.selected = false;
  312.     }
  313.  
  314.     return final_value;
  315. }
  316.  
  317. function setSubmitEvent()
  318. {
  319.     if(document.Main.waitfor_selected)
  320.     {
  321.         document.Main.waitfor_selected.value = createSelectedString("waitfor");
  322.         document.Main.trigger_selected.value = createSelectedString("trigger");
  323.     }
  324. }
  325.  
  326. function initMonthly()
  327. {
  328.   var form = document.forms["Main"];
  329.   var defMonthlyDay = "%4";
  330.   var defMonthlyDay2 = "%5";
  331.   var defMonthlyDay3 = "%6";
  332.  
  333.   if(form.Day)
  334.   {
  335.       for (var i=0; i < form.Day.length; i++) {
  336.         if ( form.Day.options[i].value == defMonthlyDay ) 
  337.         {
  338.           form.Day.options[i].selected = true;
  339.           break;
  340.         }
  341.       }
  342.   }
  343.  
  344.   if(form.Day2)
  345.   {
  346.       for (var i=0; i < form.Day2.length; i++) {
  347.         if ( form.Day2.options[i].value == defMonthlyDay2 ) {
  348.           form.Day2.options[i].selected = true;
  349.           break;
  350.         }
  351.       }
  352.  
  353.       for (var i=0; i < form.Day3.length; i++) {
  354.         if ( form.Day3.options[i].value == defMonthlyDay3 ) {
  355.           form.Day3.options[i].selected = true;
  356.           break;
  357.         }
  358.       }
  359.   }
  360. }
  361.  
  362. var schedType = "%7";
  363.  
  364. function initType()
  365. {
  366.     var form = document.forms["Main"];
  367.  
  368.     for(var i = 0; i < form.type.length; ++i)
  369.     {
  370.         if(form.type[i].value == schedType)
  371.         {
  372.             form.type[i].checked = true;
  373.             break;
  374.         }
  375.     }
  376. }
  377.  
  378. function initInterval()
  379. {
  380.     var form = document.forms["Main"];
  381.     var interval = "%8";
  382.  
  383.     if(form.Interval)
  384.     {
  385.         for(var i = 0; i < form.Interval.options.length; ++i)
  386.         {
  387.             if(form.Interval.options[i].value == interval)
  388.             {
  389.                 form.Interval.options[i].selected = true;
  390.                 break;
  391.             }
  392.         }
  393.     }
  394. }
  395.  
  396. function init()
  397. {
  398.     initType();
  399.     initInterval();
  400.     initTime();
  401.     initEvents();
  402.  
  403.     if(schedType == "m")
  404.         initMonthly();
  405. }
  406.  
  407. function resetForm()
  408. {
  409.     document.location.replace("%9");
  410. }
  411.  
  412. function submitForm(schedule_flag)
  413. {
  414.   var form = document.forms["Main"];
  415.  
  416.   // Make sure that start and end dates are valid
  417.   if (!setSubmitTime())
  418.   {
  419.     return;
  420.   }
  421.  
  422.   setSubmitEvent();
  423.  
  424.   var selected = "";
  425.   for (var i=0; i < document.forms.Main.type.length; i++) {
  426.    if ( document.forms.Main.type[i].checked )
  427.      selected = document.forms.Main.type[i].value;
  428.   }
  429.  
  430.   var regNumber = /^^\d+$/
  431.   if ( selected == "d" ) 
  432.   {
  433.       // validate data
  434.       if(form.N)  // daily XN
  435.       {
  436.           var xValue = form.X.value;
  437.           var nValue = form.N.value;
  438.           if(!regNumber.test(xValue))
  439.           {
  440.             alert(L_NOT_A_NUMBER);
  441.             form.X.focus();
  442.             form.X.select();
  443.             return;
  444.           }
  445.           if(!regNumber.test(nValue))
  446.           {
  447.             alert(L_NOT_A_NUMBER);
  448.             form.N.focus();
  449.             form.N.select();
  450.             return;
  451.           }
  452.           if(xValue == 0 && nValue == 0)
  453.           {
  454.             alert(L_BOTH_ZERO);
  455.             form.X.focus();
  456.             form.X.select();
  457.             return;
  458.           }
  459.           // check for a crazy amount over what is allowed
  460.           if (xValue > 32000)
  461.           {
  462.             alert(L_NUMBER_IS_TO_LARGE);
  463.             form.X.focus();
  464.             form.X.select();
  465.             return; 
  466.           }
  467.           // check for over 59 minutes
  468.           if (nValue > 59)
  469.           {
  470.             alert(L_MINUTES_IS_TO_LARGE);
  471.             form.N.focus();
  472.             form.N.select();
  473.             return; 
  474.           }
  475.  
  476.       }
  477.       else if(form.X)     // daily X
  478.       {
  479.           var xValue = form.X.value;
  480.           if(!regNumber.test(xValue) || xValue == 0)
  481.           {
  482.             alert(L_NOT_A_NUMBER_OR_ZERO);
  483.             form.X.focus();
  484.             form.X.select();
  485.             return;
  486.           }
  487.           if (xValue > 32000)
  488.           {
  489.             alert(L_NUMBER_IS_TO_LARGE);
  490.             form.X.focus();
  491.             form.X.select();
  492.             return; 
  493.           }
  494.       }
  495.   }
  496.   else if(selected == "m")
  497.   {
  498.       // validate data
  499.       if(form.month_n)
  500.       {
  501.         var nValue = form.month_n.value;
  502.         if(!regNumber.test(nValue) || nValue == 0)
  503.         {
  504.             alert(L_NOT_A_NUMBER_OR_ZERO);
  505.             form.month_n.focus();
  506.             form.month_n.select();
  507.             return;
  508.         }
  509.         if (nValue > 32000)
  510.         {
  511.             alert(L_NUMBER_IS_TO_LARGE);
  512.             form.month_n.focus();
  513.             form.month_n.select();
  514.             return; 
  515.         }
  516.       }
  517.   }
  518.   else if(selected == "w")
  519.   {
  520.     var bFound = false;
  521.     for(var i = 0; i < 7; ++i)
  522.     {
  523.         if(form.elements["Day"+i].checked)
  524.         {
  525.             bFound = true;
  526.             break;
  527.         }
  528.     }
  529.  
  530.     if(!bFound)
  531.     {
  532.         alert(L_NO_DAYS_CHECKED);
  533.         return;
  534.     }
  535.   }
  536.  
  537.   // validate retry count
  538.   if(form.retryCount)
  539.   {
  540.     var nValue = form.retryCount.value;
  541.     if (!regNumber.test(nValue))
  542.     {
  543.         alert(L_NOT_A_NUMBER);
  544.         form.retryCount.focus();
  545.         form.retryCount.select();
  546.         return;
  547.     }
  548.   }
  549.  
  550.   var submit_url = "%11";
  551.   
  552.   if (schedule_flag == true)
  553.   {
  554.     submit_url += "&schedule_flag=true"; 
  555.   }
  556.   else 
  557.   {
  558.     submit_url += "&schedule_flag=false"; 
  559.   }
  560.  
  561.   form.action = submit_url;
  562.   form.submit();
  563. }
  564.  
  565. </SCRIPT>
  566. </HEAD>
  567.  
  568. <BODY LEFTMARGIN="5" RIGHTMARGIN="5" ONLOAD="init()">
  569.  
  570. <DIV ID="tooltip" STYLE="position:absolute;visibility:hidden;z-index:99;"></DIV>
  571. <SCRIPT SRC="%1js/helps.js"></SCRIPT>
  572. <SCRIPT SRC="%1js/tips.js"></SCRIPT>
  573. <SCRIPT SRC="%1js/KeyDownEvent.js"></SCRIPT>
  574. <SCRIPT SRC="%1js/calendar.js"></SCRIPT>
  575.  
  576.  
  577. <SPAN CLASS="listSelected">Add a new recurrence pattern for the report: %10</SPAN>
  578. <BR>
  579. This recurrence pattern determines how often the report will run.  
  580. (Once submitted, an Instance's recurrence settings can be viewed by clicking its Status link).
  581. <BR>
  582.   <FORM NAME="Main" TARGET="target_frame" METHOD="POST">
  583.     <TABLE BORDER="0" cellpadding=0><TR><TD class="list" valign="top">
  584.     <TR><TD valign="top">
  585.     <DIV CLASS="clsButton">
  586.       <TABLE BORDER="0">
  587.       <TR>
  588.           <TD class="list" valign="top">
  589.           <INPUT TYPE="RADIO" NAME="type" VALUE="n" onClick="onChangeOnDemand()" CHECKED>On Demand<br>
  590.           <INPUT TYPE="RADIO" NAME="type" VALUE="o" onClick="onChangeOnce(1)">Once<br>
  591.           <INPUT TYPE="RADIO" NAME="type" VALUE="d" onClick="onChangeDaily(1)">Daily<br>
  592.           <INPUT TYPE="RADIO" NAME="type" VALUE="w" onClick="onChangeWeekly(1)">Weekly<br>
  593.           <INPUT TYPE="RADIO" NAME="type" VALUE="m" onClick="onChangeMonthly(1)">Monthly
  594.           </TD>
  595.       </TR>
  596.       </TABLE>
  597.     </DIV>
  598.     </TD>
  599.     <TD class="list" width="15px"> </TD>
  600.     <TD class="list" valign="top">
  601.  
  602.     <table>
  603.  
  604.     <!-- Select list -->
  605.     <tr><td class="list">
  606.     %12
  607.     </td></tr>
  608.  
  609.     <!-- Recurrence form -->
  610.     <tr><td class="list">
  611.     %13
  612.     </td></tr>
  613.  
  614.     <!-- Time -->
  615.     <tr><td class="list">
  616.     %14 <br>
  617.     </td></tr>
  618.  
  619.     <!-- Events -->
  620.     <tr><td class="list">
  621.     %15 
  622.     </td><tr>
  623.  
  624.     <!-- Retries -->
  625.     <tr><td class="list">
  626.       <table>
  627.       <tr>
  628.         <td class="list">Number of retries allowed:</td>
  629.         <td class="list"><input name="retryCount" value="%16" size=3></td>        
  630.         <td class="list">  </td>      
  631.         <td class="list">Retry interval in seconds:</td>
  632.         <td class="list"><input name="retryInterval" value="%17" size=3></td>
  633.       </tr>
  634.       </table>
  635.     </td><tr>
  636.  
  637.     </table>
  638.  
  639.     </TD></TR>
  640.     </TABLE>
  641.   </FORM>
  642.  
  643.   <table align="right" border=0 cellpadding=0>
  644.   <tr valign=center>
  645.   %18    
  646.   <td class="clsButton" align=middle nowrap>
  647.   <div class="clsButton"><a href="javascript:submitForm(false);" onMouseOver="St(7);window.status='';return true;" onMouseOut="Ht()">Update</a></div>
  648.   </td>
  649.   <td class="clsButton" align=middle nowrap>
  650.   <div class="clsButton"><a href="javascript:resetForm();" onMouseOver="St(8);window.status='';return true;" onMouseOut="Ht()">Reset</a></div>
  651.   </td>
  652.   </tr>  
  653.   </table>
  654.  
  655. </BODY>
  656. </HTML>
  657.